/**
 * The portal event framework allows the sending of events and the register
 * of observers to receive such events.
 * <p>
 * Operations of the event framework are available in the 
 * {@link lumis.portal.event.IPortalEventManager}
 * interface, whose instance is available at 
 * {@link lumis.portal.manager.ManagerFactory#getPortalEventManager()}.
 * <p>
 * Events must implement {@link lumis.portal.event.IPortalEvent}. 
 * The events may be sent using the 
 * {@link lumis.portal.event.IPortalEventManager#notifyObservers(lumis.portal.event.IPortalEvent)} 
 * method. The abstract event implementations {@link lumis.portal.event.AbstractPortalEvent}
 * and {@link lumis.portal.event.AbstractTransactionalPortalEvent} makes creating
 * new events easier.
 * <p>
 * Observers must implement {@link lumis.portal.event.IPortalEventObserver}. Observers may be 
 * registered using the {@link lumis.portal.event.IPortalEventManager} API or using the 
 * Portal Configuration front-end. It is recommended to extend the 
 * {@link lumis.portal.event.AbstractPortalEventObserver} class instead of implementing
 * the observer interface directly.
 * <p>
 * When the {@link lumis.portal.event.IPortalEventManager#notifyObservers(IPortalEvent)}
 * method is called, each enabled observer is notified of the given event through
 * the {@link lumis.portal.event.IPortalEventObserver#onEvent(IPortalEvent)} 
 * method, if that observer's filter (specified by {@link lumis.portal.event.IPortalEventObserver#getEventFilter()})
 * accepts the event.
 * <p>
 * The execution of {@link lumis.portal.event.IPortalEventFilter#accept(IPortalEvent)}
 * and {@link lumis.portal.event.IPortalEventObserver#onEvent(IPortalEvent)}
 * must not be time consuming, as it may impact the overall time response of the 
 * portal. 
 * 
 * @see lumis.portal.event.IPortalEvent
 * @see lumis.portal.event.IPortalEventObserver
 * @see lumis.portal.event.IPortalEventManager
 *  
 * @since 4.0.0
 * @version $Revision: 8100 $ $Date: 2007-09-03 11:54:38 -0300 (Mon, 03 Sep 2007) $
 */
package lumis.portal.event;